class Validators {
  static final RegExp _phoneRegExp = RegExp(r'^(?:\+?86)?1[3-9]\d{9}$');
  static final RegExp _emailRegExp = RegExp(
      r'^[a-zA-Z0-9]+([._%+-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+$');
  static final RegExp _smsCodeRegExp = RegExp(r'^\d{4,6}$');

  static String? validatePhone(String value) {
    if (value.isEmpty) return '请输入手机号';
    if (!_phoneRegExp.hasMatch(value)) return '请输入合法的大陆手机号';
    return null;
  }

  static String? validateEmail(String value) {
    if (value.isEmpty) return '请输入邮箱地址';
    if (!_emailRegExp.hasMatch(value)) return '邮箱格式不正确';
    return null;
  }

  static String? validatePassword(String value) {
    if (value.isEmpty) return '请输入密码';
    if (value.length < 6) return '密码至少 6 位';
    return null;
  }

  static String? validateSmsCode(String value) {
    if (value.isEmpty) return '请输入验证码';
    if (!_smsCodeRegExp.hasMatch(value)) return '验证码格式不正确';
    return null;
  }
}
